/**
 * USB设备信息
 */
export interface UsbDevice {
    /**
     * USB设备列表
     */
    UsbDevices: Array<string>;
}

/**
 * 打印ZPL配置
 */
export interface PrintZplOptions {
    /**
     * 设备名称
     */
    DeviceName?: string;
    /**
     * ZPL数据
     * 文本格式限制`^CF[0-9],[0-9]+^FD[中文]^FS`或`^FW[NRIB]^CF[0-9],[0-9]+^FD[中文]^FS^FWN`
     */
    Zpl: string;
}

/**
 * 打印图片BASE64为ZPL配置
 */
export interface PrintBase64ZplOptions {
    /**
     * 设备名称
     */
    DeviceName?: string;
    /**
     * 图片BASE64数据
     */
    Base64: string;
    /**
     * 标签宽度
     */
    Width: number;
    /**
     * 标签高度
     */
    Height: number;
    /**
     * 打印密度
     */
    Density: number;
}

export interface PrinterPlugin {
    /**
     * 读取USB设备
     */
    getUsbDevices(): Promise<UsbDevice>;
    /**
     * 打印ZPL
     * @param Options 
     */
    printZpl(Options: PrintZplOptions): Promise<void>;
    /**
     * 打印图片BASE64为ZPL
     * @param Options 
     */
    printImageBase64ToZpl(Options: PrintBase64ZplOptions): Promise<void>;
}
